package modelo.facade;

import modelo.*;
import java.util.List;
import java.util.Vector;

public class Fachada {
	CategoriaDAO categoriaDAO = new CategoriaDAO();
	ClienteDAO clienteDAO = new ClienteDAO();
	CompraDAO compraDAO = new CompraDAO();
	DetalleCompraDAO detalleCompraDAO = new DetalleCompraDAO();
	DetalleOrdenDAO detalleOrdenDAO = new DetalleOrdenDAO();
	DetalleProductoDAO detalleProductoDAO = new DetalleProductoDAO();
	IngredienteDAO ingredienteDAO = new IngredienteDAO();
	OrdenDAO ordenDAO = new OrdenDAO();
	ProductoDAO productoDAO = new ProductoDAO();
	
	//*************************CATEGORIADAO*************************
	
	public void registarCategoria(Categoria categoria){
		categoriaDAO.registrarCategoria(categoria);
	}
	
	public Vector<String> llenarComboCategoria(){
		return categoriaDAO.llenarComboCategoria();
	}
	
	public Categoria getCategoria(String nombre){
		return categoriaDAO.buscarCategoria(nombre);
	}
	
	public int generarCodigoCategoria(){
		return categoriaDAO.generar();
	}
	
	public void actualizarCategoria(String codigo, String nombre, String descripcion){
		categoriaDAO.actualizarCodigo(codigo, nombre, descripcion);
	}
	
	//*************************CLIENTEDAO*************************
	
	public void registrarCliente(Cliente cliente){
		clienteDAO.registrarCliente(cliente);
	}
	
	public Cliente getCliente(String cedula){
		return clienteDAO.busquedaCliente(cedula);
	}
	
	//*************************COMPRADAO*************************
	
	public void registrarCompra(Compra compra){
		compraDAO.registrarCompra(compra);
	}
	
	public int generarCodigoCompra(){
		return compraDAO.generar();
	}
	
	//************************DETALLECOMPRADAO***********************
	
	public void registrarDetalleCompra(DetalleCompra detalleCompra){
		detalleCompraDAO.registrarDetalleCompra(detalleCompra);
	}
	
	//************************DETALLEORDENDAO***********************
	
	public void registrarDetalleOrden(DetalleOrden detalleOrden){
		detalleOrdenDAO.registrarDetalleOrden(detalleOrden);
	}
	
	//************************DETALLEPRODUCTODAO***********************
	
	public void registrarDetalleProducto(DetalleProducto detalleProducto){
		detalleProductoDAO.registrarDetalleProducto(detalleProducto);
	}
	
	//*************************INGREDIENTEDAO*************************
	
	public List<Ingrediente> consultarIngrediente(){
		return ingredienteDAO.consultarIngredientes();
	}
	
	public Vector<String> llenarComboIngrediente(){
		return ingredienteDAO.llenarComboIngrediente();
	}
	
	public Ingrediente getIngrediente(String nombre){
		return ingredienteDAO.buscarIngrediente(nombre);
	}
	
	public void actualizarInventario(String codigo, float cantidad){
		ingredienteDAO.actualizarInventario(codigo, cantidad);
	}
	
	public List<Ingrediente> listadoMasUsado(){
		return ingredienteDAO.listadoMasUsado();
	}
	
	//*************************ORDENDAO*************************
	
	public void registrarOrden(Orden orden){
		ordenDAO.registrarOrden(orden);
	}
	
	public List<Producto> listadoVentasPorCantidad(){
		return ordenDAO.listadoVentasPorCantidad();
	}
	
	public List<Producto> listadoVentasPorMonto(){
		return ordenDAO.listadoVentasPorMonto();
	}
	
	public int generarCodigoOrden(){
		return ordenDAO.generar();
	}
	
	public boolean descontarOrden(String codigoproducto, float cantidad){
		return ordenDAO.descontarOrden(codigoproducto, cantidad);
	}
	
	public void actualizarOrden(String codigoproducto, float cantidad){
		ordenDAO.actualizarOrden(codigoproducto, cantidad);
	}
	
	//*************************PRODUCTODAO*************************
	
	public void registrarProducto(Producto producto){
		productoDAO.registrarProducto(producto);
	}
	
	public Vector<String> llenarComboProducto(String nombreCategoria){
		return productoDAO.llenarComboProducto(nombreCategoria);
	}
	
	public Producto getProducto(String nombre){
		return productoDAO.busquedaProducto(nombre);
	}
	
	public int generarCodigoProducto(){
		return productoDAO.generar();
	}

}